package com.hnchances.studentscoresystem.dto.request;

import lombok.Data;

import java.util.Date;

/**
 * 用户信息修改请求DTO
 * 对应接口：/user/update（有鉴权）
 * 功能：更新用户个人信息（如手机号、真实姓名等，用户名、身份不可修改）
 */
@Data
public class UserUpdateDTO {

    /**
     * 用户ID（唯一标识，用于定位待修改用户）
     * 约束：非空（匹配数据库user表id字段，必传参数）
     */
    private Long id;

    /**
     * 电话号码（新手机号，11位）
     * 约束：可空，若传值需为11位数字（匹配数据库user表phone字段）
     */
    private String phone;

    /**
     * 真实姓名（新姓名）
     * 约束：可空，若传值长度1-120位（匹配数据库user表trueName字段）
     */
    private String trueName;

    /**
     * 密码（新密码明文，后端存储时MD5加密）
     * 约束：可空，若传值建议长度6-20位（匹配数据库user表passWord字段加密前需求）
     */
    private String passWord;

    /**
     * 课程ID（仅老师可修改，关联course表id）
     * 约束：可空，仅老师身份传值有效（匹配数据库user表courseID字段）
     */
    private Integer courseID;

    /**
     * 出生年月（仅学生可修改，辅助更新身份信息）
     * 约束：可空，仅学生身份传值有效（匹配数据库student表birthday字段）
     */
    private Date birthday;
}